package com.lantosec.hmrp.modules.report.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.lantosec.hmrp.core.kit.PageVO;

import java.util.Map;

public interface IWindIndexService extends IService<Map> {
    /**
     * 门诊科室业务信息监控
     * @param page
     * @param startTime
     * @param endTime
     * @param deptName
     * @param docName
     * @param dateState
     * @param deptState
     * @param docNameState
     * @return
     */
    PageVO<Map<String, Object>> getClinicDeptInfoMonitorList(PageVO<Map<String, Object>> page, String startTime, String endTime, String deptName, String docName, Integer dateState, Integer deptState, Integer docNameState);

    /**
     * 住院科室业务信息监控
     * @param page
     * @param startTime
     * @param endTime
     * @param deptName
     * @param dateState
     * @param deptState
     * @return
     */
    PageVO<Map<String, Object>> getInnerDeptInfoMonitorList(PageVO<Map<String, Object>> page, String startTime, String endTime, String deptName, Integer dateState, Integer deptState);

    /**
     * 药品费用排名
     * @param page
     * @param startTime
     * @param endTime
     * @param drugName
     * @param dateState
     * @param drugSate
     * @return
     */
    PageVO<Map<String, Object>> getReportDrugFeeRank(PageVO<Map<String, Object>> page, String startTime, String endTime, String drugName, Integer dateState, Integer drugSate);

    /**
     * 辅助药物排名
     * @param page
     * @param startTime
     * @param endTime
     * @param hisDeptName
     * @param doctorName
     * @param auxDrugName
     * @param dateState
     * @param hisDeptState
     * @param doctorState
     * @param auxDrugState
     * @return
     */
    PageVO<Map<String, Object>> getReportAuxDrugFeeRank(PageVO<Map<String, Object>> page, String startTime, String endTime, String hisDeptName, String doctorName, String auxDrugName, Integer dateState, Integer hisDeptState, Integer doctorState, Integer auxDrugState);

    /**
     * 质子泵抑制剂医师费用排名
     * @param page
     * @param startTime
     * @param endTime
     * @param hisDeptName
     * @param doctorName
     * @param ppiName
     * @param dateState
     * @param hisDeptState
     * @param doctorState
     * @param ppiState
     * @return
     */
    PageVO<Map<String, Object>> getReportPpiFeeRank(PageVO<Map<String, Object>> page, String startTime, String endTime, String hisDeptName, String doctorName, String ppiName, Integer dateState, Integer hisDeptState, Integer doctorState, Integer ppiState);

    /**
     * 医生药品费用排名
     * @param page
     * @param startTime
     * @param endTime
     * @param hisDeptName
     * @param doctorName
     * @param diagTreatType
     * @param dateState
     * @param hisDeptState
     * @param doctorState
     * @param diagTreatState
     * @return
     */
    PageVO<Map<String, Object>> getReportDoctorDrugFeeRank(PageVO<Map<String, Object>> page, String startTime, String endTime, String hisDeptName, String doctorName, String diagTreatType, Integer dateState, Integer hisDeptState, Integer doctorState, Integer diagTreatState);

    /**
     * 门诊退费监控
     * @param page
     * @param startTime
     * @param endTime
     * @param hisDeptName
     * @param doctorName
     * @param patientName
     * @param itemType
     * @param refundItem
     * @param dateState
     * @param hisDeptState
     * @param doctorState
     * @param patientNameState
     * @param itemTypeState
     * @param handlerState
     * @param refundItemState
     * @return
     */
    PageVO<Map<String, Object>> getReportClinicRefundMonitor(PageVO<Map<String, Object>> page, String startTime, String endTime, String hisDeptName, String doctorName, String patientName, String itemType, String refundItem, Integer dateState, Integer hisDeptState, Integer doctorState, Integer patientNameState, Integer itemTypeState, Integer handlerState, Integer refundItemState);

    /**
     * 医疗质量核心指标
     * @param page
     * @param startTime
     * @param endTime
     * @param hmrpDeptName
     * @return
     */
    PageVO<Map<String, Object>> getReportMedicalQualityCore(PageVO<Map<String, Object>> page, String startTime, String endTime, String hmrpDeptName);
}
